package iface.aplicativo.apresentacao.converter;

import iface.aplicativo.integracao.dao.PessoaDAO;
import iface.aplicativo.negocio.entidade.Pessoa;
import iface.arquitetura.comum.string.UtilString;

import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;

import org.springframework.web.jsf.FacesContextUtils;

@FacesConverter(value = "pessoaConverter")
public class PessoaConverter implements Converter {

	public Object getAsObject(FacesContext fc, UIComponent uic, String string) {
		PessoaDAO pessoaDAO = (PessoaDAO) FacesContextUtils
				.getWebApplicationContext(fc).getBean("pessoaDAO");

		Pessoa pessoa = null;
		if (!UtilString.isVazio(string)) {
			try {
				pessoa = pessoaDAO.obter(Long.valueOf(string));
			} catch (NumberFormatException e) {
				return null;
			}
		}

		return pessoa;
	}

	public String getAsString(FacesContext fc, UIComponent uic, Object o) {
		Pessoa pessoa = new Pessoa();
		pessoa = (Pessoa) o;
		if (pessoa != null && pessoa.getIdPessoa() != null) {
			return pessoa.getIdPessoa().toString();
		} else {
			return null;
		}
	}
}